home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 9 / FM Towns Free Software Collection 9.iso / fb386 / game / thezoom / thezoom.bas < prev    next >
BASIC Source File  |  1994-11-16  |  6KB  |  129 lines

  1. 10 ' The ZOOM     By Mr.Bros
  2. 20 CONSOLE 0,25,0
  3. 30 CLEAR ,,,330000:SCREEN@ 1:RANDOMIZE TIME:COLOR 6,0:CLS
  4. 40 DIM NYU(21000),PIN(23000),BUU(24000),EN(13000),M(6),MO$(257)
  5. 50 LOAD@ "nyuryo.snd",NYU
  6. 60 LOAD@ "seikai.snd",PIN
  7. 70 LOAD@ "buu.snd",BUU
  8. 80 '***********  タイトル画面
  9. 90 PLAY OFF:SCREEN@ 1
  10. 100 SYMBOL(40,200),"PUSH ANY BUTTON",1,1,6
  11. 110 SYMBOL(135,20),"The",1,1,6
  12. 120 SYMBOL(0,70),"Z      M",4,4,6,,,1
  13. 130 SYMBOL(56,50),"O",7,7,[150,255,150],,,1
  14. 140 SYMBOL(148,50),"O",7,7,[150,255,150],,,1
  15. 150 PAINT(99,99),7,[150,255,150]:PAINT(200,100),7,[150,255,150]
  16. 160 CIRCLE(122,102),8,0,,,,F:CIRCLE(215,102),8,0,,,,F
  17. 170 SYMBOL(100,170),"Programmed By Mr.Bros",.7!,.7!,6
  18. 180 WHILE PTRIG(1)=0 AND PTRIG(2)=0:WEND
  19. 190 '***********  使う文字設定
  20. 200 SCREEN@ 0:MO=0
  21. 210 CLS:LOCATE 23,0:PRINT"出題する文字を設定してください。"
  22. 220 LOCATE 30,10:PRINT"数字            ○":M(0)=0
  23. 230 LOCATE 30,11:PRINT"英語の大文字    ○":M(1)=0
  24. 240 LOCATE 30,12:PRINT"英語の小文字    ○":M(2)=0
  25. 250 LOCATE 30,13:PRINT"記号(英モード)    ○":M(3)=0
  26. 260 LOCATE 30,14:PRINT"ひらがな        ×":M(4)=1
  27. 270 LOCATE 30,15:PRINT"カタカナ        ×":M(5)=1
  28. 280 LOCATE 30,16:PRINT"記号(かなモード)  ×":M(6)=1
  29. 290 LOCATE 28,22:PRINT"[RUN]ボタンで決定"
  30. 300 GOSUB 380
  31. 310 IF PTRIG(1)=1 THEN IF M(MO)=0 THEN M(MO)=1:GOSUB 360 ELSE M(MO)=0:GOSUB 370
  32. 320 IF PAD(1)=1 THEN IF MO<>0 THEN MO=MO-1:GOSUB 380
  33. 330 IF PAD(1)=5 THEN IF MO<>6 THEN MO=MO+1:GOSUB 380
  34. 340 IF PTRIG(1)=4 THEN 390
  35. 350 GOTO 310
  36. 360 LOCATE 46,10+MO:PRINT"×":WAIT 20:RETURN
  37. 370 LOCATE 46,10+MO:PRINT"○":WAIT 20:RETURN
  38. 380 CLS 5:WAIT 3:SYMBOL(210,190+19*MO),"≫",1,1,7:RETURN
  39. 390 '*********** 使う文字読み込み
  40. 400 DAT=0:HA=0
  41. 410 IF M(0)=0 THEN RESTORE 1140:FOR I=DAT TO DAT+9:READ MO$(I):NEXT:DAT=DAT+10:HA=1
  42. 420 IF M(1)=0 THEN RESTORE 1080:FOR I=DAT TO DAT+25:READ MO$(I):NEXT:DAT=DAT+26:HA=1
  43. 430 IF M(2)=0 THEN RESTORE 1160:FOR I=DAT TO DAT+25:READ MO$(I):NEXT:DAT=DAT+26:HA=1
  44. 440 IF M(3)=0 THEN RESTORE 1110:FOR I=DAT TO DAT+25:READ MO$(I):NEXT:DAT=DAT+26:HA=1
  45. 450 IF M(4)=0 THEN RESTORE 1190:FOR I=DAT TO DAT+80:READ MO$(I):NEXT:DAT=DAT+81:HA=1
  46. 460 IF M(5)=0 THEN RESTORE 1250:FOR I=DAT TO DAT+80:READ MO$(I):NEXT:DAT=DAT+81:HA=1
  47. 470 IF M(6)=0 THEN RESTORE 1310:FOR I=DAT TO DAT+7:READ MO$(I):NEXT:DAT=DAT+8:HA=1
  48. 480 IF HA=0 THEN 210
  49. 490 '***************  点数方式選択
  50. 500 CLS:WAIT 50:SCREEN@ 1:LOCATE 18,13:PRINT "B=1問正解するごとに1点  A=倍率が得点"
  51. 510 IF PTRIG(1)<>1 AND PTRIG(1)<>2 THEN 510
  52. 520 IF PTRIG(1)=2 THEN TT=1:GOTO 550
  53. 530 TT=2
  54. 540 '***************  画面作成
  55. 550 CLS:FOR I=0 TO 7:LINE(I*20,I*15)-(319-I*20,239-I*15),PSET,1,B:NEXT
  56. 560 LINE(0,0)-(319,239),PSET,1
  57. 570 LINE(319,0)-(0,239),PSET,1
  58. 580 LINE(141,106)-(178,133),PSET,0,BF
  59. 590 '***************  倍率1の時の文字の位置決定
  60. 600 WAIT 70:J=90:X=0:Y=0
  61. 610 '***************  出題する文字決定
  62. 620 MJ$=MO$(INT(RND*DAT))
  63. 630 '***************  出題&回答待ち
  64. 640 P1=1:P2=2
  65. 650 IF PTRIG(P1)=1 THEN P=P1:GOTO 720
  66. 660 IF PTRIG(P2)=1 THEN P=P2:GOTO 720
  67. 670 SWAP P1,P2:J=J-1
  68. 680 IF J=0 THEN CLS:LOCATE 21,12:PRINT"時間切れです。次の文字にうつります。":WAIT 200:GOTO 540
  69. 690 SYMBOL(161-8*J+X,115-8*J+Y),MJ$,J,J,[INT(RND*32)*8,INT(RND*32)*8,INT(RND*32)*8]:LOCATE 36,13:PRINT"倍率:";J:LOCATE 35,12
  70. 700 GOTO 650
  71. 710 '***************  入力待ち
  72. 720 PLAY"@66V15B32E16":CLS:WAIT 100:PCMPLAY NYU:SYMBOL(0,0),AKCNV$(STR$(P))+"Pさんどうぞ",1,1
  73. 730 CONSOLE 0,24,1:LOCATE 36,13:PRINT"倍率:";J:LOCATE 0,4:INPUT "答は?",A$
  74. 740 IF A$="" OR LEN(A$)<>2 THEN 730
  75. 750 IF A$<>MJ$ THEN 830
  76. 760 '***************  判定&点数・点差表示
  77. 770 IF A$=MJ$ THEN SYMBOL(75,80),"正解です!",2.5!,2.5!,4,,,3
  78. 780 IF P=1 AND TT=1 THEN PS1=PS1+1
  79. 790 IF P=1 AND TT=2 THEN PS1=PS1+J
  80. 800 IF P=2 AND TT=1 THEN PS2=PS2+1
  81. 810 IF P=2 AND TT=2 THEN PS2=PS2+J
  82. 820 PCMPLAY PIN:LOCATE 25,20:PRINT PS1;" 対 ";PS2:GOSUB 900:GOSUB 910:WAIT 200:CONSOLE 0,25,0:GOTO 540
  83. 830 PCMPLAY BUU
  84. 840 SYMBOL(75,80),"MISS!",2.5!,2.5!,2,,,3
  85. 850 IF P=1 AND TT=1 THEN PS1=PS1-3
  86. 860 IF P=1 AND TT=2 THEN PS1=PS1-J*3
  87. 870 IF P=2 AND TT=1 THEN PS2=PS2-3
  88. 880 IF P=2 AND TT=2 THEN PS2=PS2-J*3
  89. 890 LOCATE 25,20:PRINT PS1;" 対 ";PS2:GOSUB 900:GOSUB 910:WAIT 200:CONSOLE 0,25,0:GOTO 540
  90. 900 LOCATE 25,22:PRINT ABS(PS1-PS2);"点差です":RETURN
  91. 910 IF ABS(PS1-PS2)=>10 AND TT=1 THEN 930 
  92. 920 IF ABS(PS1-PS2)=>200 AND TT=2 THEN 930 ELSE RETURN
  93. 930 '***************  エンディング
  94. 940 WAIT 200:CONSOLE 0,25,0
  95. 980 CLS:SCREEN@0:LOCATE 32,13:PRINT"ENDING":LOAD@"ending.tif",(0,5)
  96. 990 CLS 4:IF PS2<PS1 THEN E=1 ELSE E=2
  97. 1000 SYMBOL(10,10),AKCNV$(STR$(E))+"Pさんの勝利!",4,4,2,,,7
  98. 1010 SYMBOL(130,200),STR$(PS1)+" 対 "+STR$(PS2),4,4,6,,,7
  99. 1020 SYMBOL(10,400),"もう一度しますか Yes(A)  No(B)",2,2.4!,4,,,7
  100. 1030 IF PTRIG(1)=1 THEN CLS:PS1=0:PS2=0:GOTO 80
  101. 1040 IF PTRIG(1)=2 THEN END
  102. 1050 GOTO 1030
  103. 1060 '****************  データ
  104. 1070 '/// 英語の大文字
  105. 1080 DATA A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U
  106. 1090 DATA V,W,X,Y,Z
  107. 1100 '/// 記号(英モード)
  108. 1110 DATA !,”,#,$,%,&,’,(,),+,-,*,/,=,.,,,<,>,_,{,}
  109. 1120 DATA [,],^,;,:
  110. 1130 '/// 数字
  111. 1140 DATA 1,2,3,4,5,6,7,8,9,0
  112. 1150 '/// 英語の小文字
  113. 1160 DATA a,b,c,d,e,f,g,h,i,j,k,l,m,n,o
  114. 1170 DATA p,q,r,s,t,u,v,w,x,y,z
  115. 1180 '/// ひらがな
  116. 1190 DATA あ,い,う,え,お,か,き,く,け,こ,さ,し,す,せ,そ,た,ち,つ,て,と
  117. 1200 DATA な,に,ぬ,ね,の,は,ひ,ふ,へ,ほ,ま,み,む,め,も,や,ゆ,よ
  118. 1210 DATA ら,り,る,れ,ろ,わ,を,ん
  119. 1220 DATA ぁ,ぃ,ぅ,ぇ,ぉ,が,ぎ,ぐ,げ,ご,ざ,じ,ず,ぜ,ぞ,だ,ぢ,づ,で,ど
  120. 1230 DATA ば,び,ぶ,べ,ぼ,ぱ,ぴ,ぷ,ぺ,ぽ,,ゃ,ゅ,ょ,っ
  121. 1240 '/// カタカナ
  122. 1250 DATA ア,イ,ウ,エ,オ,カ,キ,ク,ケ,コ,サ,シ,ス,セ,ソ,タ,チ,ツ,テ,ト
  123. 1260 DATA ナ,ニ,ヌ,ネ,ノ,ハ,ヒ,フ,ヘ,ホ,マ,ミ,ム,メ,モ,ヤ,ユ,ヨ
  124. 1270 DATA ラ,リ,ル,レ,ロ,ワ,ヲ,ン
  125. 1280 DATA ァ,ィ,ゥ,ェ,ォ,ガ,ギ,グ,ゲ,ゴ,ザ,ジ,ズ,ゼ,ゾ,ダ,ヂ,ヅ,デ,ド
  126. 1290 DATA バ,ビ,ブ,ベ,ボ,パ,ピ,プ,ペ,ポ,ヴ,ャ,ュ,ョ,ッ
  127. 1300 '/// 記号(かなモード)
  128. 1310 DATA ー,゛,゜,・,。,、,「,」
  129.